記錄學習內容。看網路上大大們的文章和影片,做些紀錄。
相簿
https://ithelp.ithome.com.tw/articles/10235043
相簿2
https://ithelp.ithome.com.tw/articles/10235430
在格狀圖片 的 View 裡面 寫onTapGesture 和NavigaionLink
SwiftUI Repaint View Components on Device Rotation
https://stackoverflow.com/questions/57441654/swiftui-repaint-view-components-on-device-rotation
參考最後一位大大的解答 : 當畫面旋轉時,判斷是直的還是橫的。
Landscape = true 代表是橫的 。
Landscape = false 代表是直的 。
// OrientationInfo.swift
final class OrientationInfo: ObservableObject {
@Published var isLandscape = false
}
把
window.rootViewController = UIHostingController(rootView:contentView)
改成
window.rootViewController = UIHostingController(rootView: contentView.environmentObject(orientationInfo))
和新增這一段
func windowScene(_ windowScene: UIWindowScene, didUpdate previousCoordinateSpace: UICoordinateSpace, interfaceOrientation previousInterfaceOrientation: UIInterfaceOrientation, traitCollection previousTraitCollection: UITraitCollection) {
orientationInfo.isLandscape = windowScene.interfaceOrientation.isLandscape
}
@EnvironmentObject var orientationInfo: OrientationInfo
var body: some View {
Group {
if orientationInfo.isLandscape {
Text("LANDSCAPE") //橫的
} else {
Text("PORTRAIT") //直的
}
}
}
但是Group 的 if 裡面只能放畫面相關的 ,不能寫print(“LANDSCAPE”)之類的
Group {
if orientationInfo.isLandscape {
Text("LANDSCAPE") //橫的
// 想要寫 orientation = "LANDSCAPE" 之類的 ,可是不行
// 正在想辦法 達成 orientation = "LANDSCAPE" 的效果,目前失敗
} else {
Text("PORTRAIT") //直的
}
}
使用ZStack
按鈕可以這樣寫:
Button(action:{
Print(“test?”)
}){
Text(“123”)
}
也可以這樣寫:
Button(“123”){
Print(“test?”)
}
這部教學很棒。
SwiftUI UIPageViewController - UIViewControllerRepresentable with Page View Controller in SwiftUI
https://www.youtube.com/watch?v=hr_B03mabYo&ab_channel=maxcodes